﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Entities.ThuQuy;
using DAL;
using BLL.Admin;
using Entities.Admin;
using Entities;
using BLL.ThuQuy;

namespace WindowsForms.ThuQuy
{
    public partial class FormThemHoaDon : Form
    {
        public static string maNhanVien;
        public static int loaiChi;
        public static int maloai;
        public static string maHD;
        public static bool state = false;
        public FormThemHoaDon()
        {
            InitializeComponent();
            LoadCbbNhanVien(NhanVien.Objects.Find(p=>p.MaBoPhan=="TQ_001").ToList());
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            DialogResult rs=
            MessageBox.Show("Bạn muốn thoát khỏi chương trình ?", "Hỏi", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (rs == DialogResult.Yes)
            {
                this.Close();
            }
            else
            {
                Application.Restart();
            }
        }

        private void FormHoaDon_Load(object sender, EventArgs e)
        {
            //cbbMaLoai.SelectedIndex = 0;
            //cbbLoaiChi.SelectedIndex = 0;
            cbbMaLoai.SelectedIndex = 0;
            mtxtMaHD.ReadOnly = state;
            if(state)
            {
                HoaDon hd = HoaDon.Objects.GetById(maHD);
                if (hd != null)
                    setControl(hd);
            }
        }

        
        private void LoadCbbNhanVien(List<NhanVien>list)
        {
            foreach (NhanVien item in list)
                cbbNguoiLap.Items.Add(item);

            cbbNguoiLap.DisplayMember = "TenNhanVien";
            cbbNguoiLap.ValueMember = "MaNhanVien";
            cbbNguoiLap.Items.Insert(0, "---Tên Nhân Viên---");
            cbbNguoiLap.SelectedIndex = 0;
        }

     

        private void ResetTextHoaDon()
        {
            //this.txtNoiDung.Text = "";
          
            //this.cbbLoaiChi.Text = "";
            this.cbbNguoiLap.Text = "";
            cbbNguoiLap.SelectedIndex = 0;
            cbbMaLoai.SelectedIndex = 0;
            //this.cbbVatPham.Text = "";
            this.cbbMaLoai.Text = "";
            this.mtxtMaHD.Text = "";
            this.dtpNgayLap.Value = DateTime.Now;
        }

        private void btnLamLai_Click(object sender, EventArgs e)
        {
            ResetTextHoaDon();
        }
        private void setControl(HoaDon hd)
        {
            mtxtMaHD.Text = hd.MaHD;
            cbbMaLoai.SelectedIndex = hd.MaLoai;
            for (int i = 1; i < cbbNguoiLap.Items.Count; i++)
                if ((cbbNguoiLap.Items[i] as NhanVien).MaNhanVien == hd.IdNguoiLap)
                    cbbNguoiLap.SelectedIndex = i;
            dtpNgayLap.Value = hd.NgayLap;
          
        }

        

        private void btnThem_Click(object sender, EventArgs e)
        {
            try
            {

                HoaDon hd = getControl();
         
              
               
                    
                        if (QuanLyHoaDon.KiemTra(hd.MaHD, HoaDon.Objects.All().ToList()))
                        {
                            bool kq1 = HoaDon.Objects.Add(hd); 
					 
							
                           
                            if (  kq1)

                                MessageBox.Show("Thêm Thành  Công !!!");
                            else MessageBox.Show("Thêm Thất Bại");
                           
                        }
                        else
                        {
                            DialogResult rs = MessageBox.Show("Hóa đơn có mã " + hd.MaHD + " đã tồn tại bạn có muốn cập nhật không???", "Hỏi", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                            if (rs == DialogResult.Yes)
                            {
                              
                              if(  HoaDon.Objects.Update(hd))
                                MessageBox.Show("Cập Nhật Thành Công");
                                else MessageBox.Show("Cập Nhật Thất Bại");
                            }
                        }
                  
 
           
               
            }
            catch (Exception  )
            {

				//MessageBox.Show("Vui lòng nhập đầy đủ dữ liệu" );
            }
 

        }

        private HoaDon getControl()
        {

            HoaDon hd = new HoaDon();
            ChiTietHoaDon cthd = new ChiTietHoaDon();
            hd.MaHD = mtxtMaHD.Text;
            hd.MaLoai = maloai;
            hd.NgayLap = dtpNgayLap.Value;
            hd.IdNguoiLap = maNhanVien;
            return hd;
        }
 

        private void cbbNguoiLap_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbbNguoiLap.SelectedIndex > 0)
            {
                maNhanVien = (cbbNguoiLap.SelectedItem as NhanVien).MaNhanVien;
            }
        }
 

        private void cbbMaLoai_SelectedIndexChanged(object sender, EventArgs e)
        {
            if(cbbMaLoai.SelectedIndex>0)
            {
                maloai = cbbMaLoai.SelectedIndex;
            }
        }

        private void mtxtMaHD_Validated(object sender, EventArgs e)
        {
            errorProvider1.SetError(mtxtMaHD,null);
        }

        private void mtxtMaHD_Validating(object sender, CancelEventArgs e)
        {
            if(!QuanLyHoaDon.KiemTraMaHoaDon(mtxtMaHD.Text))
            {
                errorProvider1.SetError(mtxtMaHD, "Có Dạng HD00000 Chiều Dài Băt Buôộc Phải Là 7");
                e.Cancel=true;
            }
        }
    }
}
